{{tag>Xenial accessibilité clavier souris}}

----
======Xinput gestionnaire de périphériques======
**xinput** est un outil intégré à Ubuntu qui permet de gérer et de  configurer les périphériques d'entrée comme les souris et les claviers.
===== Configuration des boutons de la souris =====

Le principe est simple :
  * Récupérer l'identification de la souris,
  * Configurer les boutons,
  * Sauver la configuration.

===== Récupérer l'identification de la souris =====
Pour récupérer l'identifiant de sa souris, il suffit de lancer la commande suivante dans un [[:terminal]] : <code>xinput list</code>
Qui vous répondra quelquechose du genre :
<code bash>
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ HP Laser Mobile Mouse                   	id=10	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=13	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
...</code>
Dans la liste vous devez reconnaître votre souris par le nom du constructeur et son modèle. Repérer ensuite l'identifiant : id=X ou X est l'identifiant.

===== Détecter et configurer les boutons =====
Dans cette partie, vous devez avoir récupérer l'identifiant de votre souris que l'on appellera : <identifiant>\\
Le principe est d'acquérir les boutons avec la commande ''test'' et de les réassigner en fonction de ce que X11 attend.

Le tableau ci dessous corresponds à la configuration attendu de X11. Il vous suffit d'assigner les boutons en fonction de votre souris.

^Position^Nom du bouton^
|P1 	|Left click|
|P2 	|Middle click|
|P3 	|Right click|
|P4 	|Wheel up|
|P5 	|Wheel down|
|P6 	|Wheel left|
|P7 	|Wheel right|
|P8 	|Thumb1|
|P9 	|Thumb2|
|P10 	|ExtBt7|
|P11 	|ExtBt8 |

Entrer maintenant la commande suivante et appuyer sur les boutons de votre souris pour connaître leur numéro actuel :
<code bash>xinput test <identifiant> | grep "button press"</code>
Pour arrêter le test des boutons tapez au clavier : CTRL + c

Pour finir entrer la commande suivante pour reconfigurer votre souris :
<code bash>xinput set-button-map <identifiant> 1 P1 P2 P3 P4 P5 ...</code>
avec P1 P2 P3 ... les valeurs du tableau précédent correspondant avec les numéros de bouton de votre souris avec la commande précédente **xinput test**
  
Exemple simple :
  * L'identifiant = 9
  * Clic gauche = 1
  * Clic milieu = 3
  * Clic droit = 2

Alors la commande est : <code bash>xinput set-button-map 9 1 3 2</code>

===== Modifier la vitesse du double clic =====

<note important>Si votre souris produit des doubles-clics alors que vous souhaitiez de simples clics, même après avoir ajusté l'intervalle dans les réglages, il se peut que votre souris soit défectueuse. Essayez de brancher une autre souris pour voir si elle fonctionne de la même façon. Vous pouvez aussi essayer de brancher la souris problématique sur un autre ordinateur pour voir si le problème se reproduit.

À défaut d'un problème purement matériel, il peut être nécessaire de régler la vitesse du double-clic, surtout lorsque celui ci est trop rapide (phénomène du double-clic intempestif alors que l'on a effectué qu'un seul clic)

Parfois la possibilité de réglage disponible dans **Paramètres Système** >> **Souris & Pavé tactile** ne résout pas le problème (même en mettant au minimum)</note>

Après avoir récupérer l'identifiant de la souris, il suffit de lancer la commande suivante dans un [[:terminal]] avec la [[:commande_shell|commande]] suivante :
<code>xinput list-props '[ID de votre souris]'</code>
remplacerez **[ID de votre souris]** par l'ID trouvé à l'étape précédente.

Exemple pour une souris **Logitech Gaming Mouse G500**

<code>$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech G500                           	id=8	[slave  pointer  (2)]
⎜   ↳ Logitech G500                           	id=9	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=7	[slave  keyboard (3)]
    ↳   USB Keyboard                          	id=10	[slave  keyboard (3)]
    ↳   USB Keyboard                          	id=11	[slave  keyboard (3)]
    ↳ Eee PC WMI hotkeys                      	id=12	[slave  keyboard (3)]</code>

<note help>Je ne saurais expliquer pourquoi la souris est référencé deux fois</note>

8 et 9 sont les 2 tag ID de la souris. (En choisir un)

<note>les paramètres sont identiques pour les deux ID</note>

La [[:commande_shell|commande]] se présente alors comme ceci :

<code>xinput list-props 9</code>  

Cette commande fait apparaître la liste des options qui s'appliquent à votre souris. Recherchez le paramètre évoquant la vitesse de décélération de la souris : "//Device Accel Constant Deceleration//"

Exemple pour la **Logitech G500**

<code>$ xinput list-props 9
Device 'Logitech G500':
	Device Enabled (151):	1
	Coordinate Transformation Matrix (153):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	Device Accel Profile (281):	0
	Device Accel Constant Deceleration (282):	1.000000
	Device Accel Adaptive Deceleration (283):	1.000000
	Device Accel Velocity Scaling (284):	10.000000
	Device Product ID (270):	1133, 49256
	Device Node (271):	"/dev/input/event3"
	Evdev Axis Inversion (285):	0, 0
	Evdev Axes Swap (287):	0
  ...</code>

La valeur par défaut pour la **Logitech G500** est **1.000000** (1.0) quelque soit l'ID choisit

À présent tapez la [[:commande_shell|commande]] suivante :

<code>xinput -xinput set-prop '[ID de votre souris]' '[N° de l'option]' [valeur]</code>

remplacer **[N° de l'option]** par le numéro trouvé à l'étape précédente et **[valeur]** par un nombre.
Cette commande attribue une nouvelle valeur à la vitesse de la souris (ou plus précisément à la décélération de la souris). Pour rester sur le cas de la **Logitech G500**, on peut mettre une valeur supérieur (ex: **1.5**) :

La [[:commande_shell|commande]] se présente alors comme ceci :

<code>xinput set-prop 9 282 1.5</code>
Il n'y a pas de retour particulier à attendre, vous pouvez tout de même vérifier que la nouvelle valeur a bien été appliquer en retapant la [[:commande_shell|commande]] suivante :

<code>xinput list-props 9</code>  

__Résultat:__

<code>$ xinput list-props 9
Device 'Logitech G500':
	Device Enabled (151):	1
	Coordinate Transformation Matrix (153):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	Device Accel Profile (281):	0
	Device Accel Constant Deceleration (282):	1.500000
  ...</code>  

Normalement la souris retrouve une vitesse normale.

Il faut maintenant **automatiser** [[:commande_shell|commande]] __à chaque démarrage du système.__

Afficher les fichiers cachés (**CTRL+H**) de votre dossier personnel (ils commencent par un point)

Rechercher le fichier "**.profile**" et effectuer un double-clic pour [[:tutoriel:comment_modifier_un_fichier|ouvrir le fichier]].
Recopier la commande à la fin du fichier et Enregistrer le fichier.

Pour appliquer [[:commande_shell|commande]] à tous les utilisateurs, éditez avec votre [[éditeur de texte]] et les [[:sudo|droits d'administration]] le fichier **/etc/profile**.

<code>sudo gedit /etc/profile</code>
Recopier la commande à la fin du fichier et Enregistrer le fichier.

**__Vous pouvez aussi utiliser un script.__**

<file bash>
#!/bin/bash
xinput --set-prop 9 "Device Accel Constant Deceleration" 1.5
exit 0;</file>

Enregistrer sous le nom "**Device Accel Constant Deceleration.sh**" rajouter **.sh** à la fin du nom de fichier n'est en rien obligatoire.

<note warning>Faites tout de même attention dans l'utilisation de script. Leur utilisation sans connaissance de votre part pourrait vous faire perdre de précieuses données.</note>

Puis exécutez la [[:commande_shell|commande]]:

<code>gnome-session-properties</code>

Si n'est pas présent, vous pouvez l'installer avec la [[:commande_shell|commande]] suivante : 

<code>sudo apt-get install gnome-session-bin</code>

Et ajoutez le script à la liste.

**N'oubliez pas de rendre le script exécutable** : 
<code>chmod +x /chemin/du/script</code>
Ou faites un clic droit sur son icône, et dans l'onglet "//Permissions//" des "//Propriétés//", cocher la case "//autoriser l'exécution du fichier comme un programme//".

===== Sauver la configuration =====
Pour que votre configuration soit enregistrée à chaque démarrage, il vous faudra modifier [[:xorg|xorg.conf]] comme expliqué sur la page [[:souris#En modifiant xorg.conf|souris]]. Ou encore utiliser une [[:souris#Avec une application tiers|application tiers]].

<note warning>Il semblerait que depuis Ubuntu 8.04, le fichier **xorg.conf** se réduise comme peau de chagrin, pour se réduire au strict minimum dans Ubuntu 9.04. L'explication vient du fait que les développeurs ont choisi une autre méthode pour configurer les périphériques. **Une erreur dans xorg.conf pouvant entraîner des catastrophes**.</note>
===== Interface graphique à Xinput =====
Vous pourrez trouvez une interface graphique à Xinput en téléchargeant le .zip à cette [[https://github.com/Max-E/xinput-ui/archive/master.zip|adresse]].
[[:archivage|Décompressez]] l'archive, puis exécutez le fichier ''xinput-ui.py'' contenu dans le dossier **xinput-ui-master**.
=====Voir aussi=====
  * [[:mpx|Utilisation avancée d'xinput]],
  * [[https://linux.die.net/man/1/xinput|les commandes xinput]],
  * Exemple de configuration sur [[http://www.mrericsir.com/blog/technology/using-an-evoluent-verticalmouse-4-on-linux|cette page]],
  * La page [[souris]].

----
//Contributeur : [[utilisateurs:votre_identifiant|Wullfk]]